package com.lau.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 【系统表】操作日志
 * </p>
 *
 * @author Lau
 * @since 2024-01-18
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("sys_oper_log")
public class SysOperLog implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;

    /**
     * 操作人id
     */
    @TableField("oper_id")
    private Long operId;

    /**
     * 操作时间
     */
    @TableField("oper_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime operTime;

    /**
     * 事件
     */
    @TableField("event")
    private String event;
    /**
     * 请求的url
     */
    @TableField("oper_url")
    private String operUrl;
    /**
     * 访问的方法
     */
    @TableField("oper_method")
    private String operMethod;

    /**
     * 操作人ip
     */
    @TableField("oper_ip")
    private String operIp;

    /**
     * 操作类型
     */
    @TableField("oper_type")
    private String operType;

    /**
     * 请求参数
     */
    @TableField("parameter")
    private String parameter;

    /**
     * 报错信息
     */
    @TableField("error_msg")
    private String errorMsg;

    /**
     * 耗时
     */
    @TableField("cost_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Long costTime;

    /**
     * 操作状态（0成功 1失败）
     */
    @TableField("oper_status")
    private String operStatus;

    /**
     * 返回值
     */
    @TableField("json_result")
    private String jsonResult;

    @TableField(exist = false)
    private String operStatusStr;

    @TableField(exist = false)
    private String username;

}
